summaryrefslogtreecommitdiff
path: root/à faire après livraison.txt
blob: 9fd5345c74beda20f928a7188f2efe47027822fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
barre de progression au téléchargement d'un melaineDATA
-> permettra de savoir aussi si la limite de 30s d'un script PHP a une importance

empêcher de monter ou descendre à nouveau un élément en rechargeant la page
-> solution 1: rediriger vers la même page sans action dans l'url après le déplacement
-> solution 2: déplacement AJAX avec javascript
ne remplace pas la solution 1 qui doit toujours fonctionner

gérer le cas où l'éditeur est ouvert et qu'on clique sur un bouton monter ou descendre
-> solution 1: cacher les boutons (et bloquer la fonctionnalité!)
-> solution 2: changement de position en JS ET version non JS en enregistrant le contenu en cours dans 'data/tmp'
(c'est lourd, mais on évite de dérouter l'utilisateur)

trouver une solution au problème du cache du visiteur (surtout Melaine) lorsque le site est mis à jour

infobulles sur les boutons d'action (seul le mode admin est concerné à moins de proposer un bouton partager au visiteur)

Actualité: remplacer le mot "actualité" (page menu) par un logo sur le côté du genre panneau Attention!

rendre le menu chronologie moins moche

miniatures albums, le même fichier est utilisé pour la pochette et dans la page album, la miniature de l'une écrase celle de l'autre
(problème: les dimensions des deux miniatures sont censées être différentes)

variable de session avec vérification du captcha

images d'en-tête svg?

trouver mieux que la police "comic sans MS" dans les images de BD

quand un article ou album est ajouté, le mentionner pendant une semaine dans la section actualité de la page menu

images des articles en grand et miniature, Zoom sur images (articles)
affichage avec javascript OU au moins dans une "page" dotée d'un bouton pour sortir (avec GD? avec imagemagick?)

galerie en css (ou/et en javascript) pour les peintures de bateau
https://www.guyom-design.com/blog/astuces/css/tuto_diapo_css/

Explorateur de fichiers pour les images

page musique avec vidéos embarquées

n'utiliser que les grandes images dans le menu

déconnexion automatique quand inactivité

dans installation.php, utiliser la racine dans config.php pour adapter le .htaccess (si c'est possible)

réduire les droits des dossiers?

sauvegardes automatiques (pas très utile, je le fais dès que je modifie quelque chose et c'est pas souvent)

remplacer le survol par un clic sur les smartphones

fignoler l'affichage petits écrans

penser aux grands écrans (en l'état, on a 700 pixels de large au maximum)

ajouter d'autres format de sauvegarde (il parait que zip se fait vieux)

Identification avec deux codes (login + mot de passe)

pagination (ex: max 10 articles par page)
à voir selon le volume, c'est mieux avec de l'AJAX

pagination + AJAX

système d'onglets avec AJAX: changement de page sans recharger

plugin autosave de l'éditeur

Editeur "inline" ou "balloon block"

défense aux attaques par force brute quand l'attaquant multiplie les connexions au site
-> limiter le nombre de connexions simultanées, exemple 3
-> une fonction "déconnecter tous les appareils"

Protection contre les falsifications de requête inter-site - CSRF
connexion avec un jeton

ici une explication simple avec un exemple simpliste
(les GET servent à la navigation, les POST à l'action)
https://www.ibm.com/docs/fr/order-management?topic=ssgtjf-com-ibm-help-sfs-cpqsolution-doc-customization-c-wcc-crosssiterequestforgery-html

notre site est-il concerné? le navigateur peut toujours enregistrer les identifiants (cookie ou pas), la session sur le serveur sera donc maintenue
protection: on ajoute un formulaire caché avec une valeur aléatoire cryptée utilisable une seule fois (=jeton)

"Vous pouvez rendre chaque jeton utilisable une seule fois et ainsi éviter de rejouer plusieurs fois la même requête.
Les jetons sont stockés dans le back-office.
Une rotation des jetons est effectuée quand le nombre maximum a été atteint, les plus vieux en premier.
Chaque jeton peut être lié à une URL spécifique.
Si un jeton est intercepté, il ne peut pas être utilisé dans un autre contexte.
Si besoin, les jetons peuvent être attachés à une adresse IP spécifique.
Depuis la version v2.1, les jetons peuvent être réutilisés (par exemple pour les requêtes AJAX).
Si vous n’utilisez pas un framework qui gère la protection CSRF pour vous, jetez un oeil à Anti-CSRF."

une bibli qui fait ça: https://github.com/paragonie/anti-csrf

"sessions, penser aux attaques CSRF (cross-site request forgery):
ça consite à faire qu'un utilisateur connecté avec une session envoie malgré lui une requête GET ou POST qu'un hacker aura cachée par exemple dans une fausse image clicable
- solution: faire qu'un GET seul dans une session ne suffise pas à effectuer une action (les GET ne doivent servir qu'à afficher la bonne page), une attaque sur un POST est possible aussi mais plus difficile et nécessite d'injecter du javascript
- on peut demander à l'utilisateur une vérification supplémentaire avant chaque action, mais c'est plutôt chiant
- il y a la méthode des jetons, "nonces" et horodatage
- vérifier le "référent", c'est à dire l'URL de la page d'où vient normallement la requête"
infos: https://fr.wikipedia.org/wiki/Cross-site_request_forgery


Upload de musique/vidéo
Ajout de liens youtube, spotify, etc

Version avec base de données

Site bilingue (nécessite la base de données)

Editeur tout AJAX (pas juste les images)